package pe.com.cotelasa.scp.controlador.backingBean;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import javax.faces.model.SelectItem;
import javax.inject.Named;

import org.springframework.context.annotation.Scope;

import pe.com.cotelasa.scp.dominio.common.ESTADO_LETRA_DE_CAMBIO;
import pe.com.cotelasa.scp.dominio.modelo.LetraPorCobrarModel;
import pe.com.cotelasa.scp.entidad.Cliente;
import pe.com.cotelasa.scp.entidad.CompraFacturacion;
import pe.com.cotelasa.scp.entidad.DetalleLetra;
import pe.com.cotelasa.scp.entidad.Letra;
import pe.com.cotelasa.scp.entidad.TipoMoneda;
import pe.com.cotelasa.scp.entidad.VentaFacturacion;

@Named(value = "BKLetraPorCobrar")
@Scope("session")
public class BKLetraPorCobrar implements Serializable {

	private static final long serialVersionUID = -6976500413918029419L;

	private Collection<ESTADO_LETRA_DE_CAMBIO> mostrarListaEstadosLetra;
	private Collection<Cliente> mostrarListaClientes;
	private Collection<TipoMoneda> mostrarListaTiposMoneda;
	

	private Collection<CompraFacturacion> mostrarListaFacturas;


	private ESTADO_LETRA_DE_CAMBIO registrarEstado;
	private Cliente registrarCliente;
	private String registrarNumero;
	private TipoMoneda registrarTipoMoneda;
	private Date registrarFechaVencimiento;
	
	
	
	/**/
	
	
	private Cliente clienteBusqueda;
	private Cliente clienteSeleccionado;
	private ESTADO_LETRA_DE_CAMBIO estadoBusqueda;
	private ESTADO_LETRA_DE_CAMBIO estadoSeleccionado;
	private TipoMoneda tipoMonedaBusqueda;
	private TipoMoneda tipoMonedaSeleccionado;
	private Date fechaVencimientoBusqueda;
	private String numeroLetra;
	private BigDecimal montoTotal;
	private Integer bancoSeleccionado;
	private Date fechaVencimientoSeleccionado;
	
	private List<SelectItem> comboClientesBusqueda;
	private List<SelectItem> comboEstadoLetrasBusqueda;
	private List<SelectItem> comboEstadoLetras;
	private List<SelectItem> comboClientes;
	private List<SelectItem> comboTipoMonedas;
	private List<SelectItem> comboTipoMonedasBusqueda;
	private List<SelectItem> comboBancos;
	
	private Collection<Letra> listaLetrasPorCobrar;
	private Collection<VentaFacturacion> listaFacturasPorCobrar;
	
	private VentaFacturacion[] facturasSeleccionadas;
	private LetraPorCobrarModel letraPorCobrarModel;
	
	private List<DetalleLetra> listaDetalleLetra;
	
	private Letra letraSeleccionada;
	
	private Locale locale = Locale.US;
	

	public BKLetraPorCobrar() {
		comboBancos = new ArrayList<SelectItem>();
		clienteBusqueda = new Cliente();
		estadoSeleccionado = estadoSeleccionado.TODOS;
		tipoMonedaBusqueda = new TipoMoneda();
		estadoBusqueda =ESTADO_LETRA_DE_CAMBIO.TODOS;
		clienteSeleccionado = new Cliente();
		mostrarListaEstadosLetra = new ArrayList<ESTADO_LETRA_DE_CAMBIO>();
		for (ESTADO_LETRA_DE_CAMBIO estadoLetraDeCambio : ESTADO_LETRA_DE_CAMBIO.values()) {
			mostrarListaEstadosLetra.add(estadoLetraDeCambio);
		}
	}

	public Collection<Letra> getListaLetrasPorCobrar() {
		return listaLetrasPorCobrar;
	}

	public void setListaLetrasPorCobrar(Collection<Letra> listaLetrasPorCobrar) {
		this.listaLetrasPorCobrar = listaLetrasPorCobrar;
	}

	public Collection<ESTADO_LETRA_DE_CAMBIO> getMostrarListaEstadosLetra() {
		return mostrarListaEstadosLetra;
	}

	public void setMostrarListaEstadosLetra(Collection<ESTADO_LETRA_DE_CAMBIO> mostrarListaEstadosLetra) {
		this.mostrarListaEstadosLetra = mostrarListaEstadosLetra;
	}

	public Collection<Cliente> getMostrarListaClientes() {
		return mostrarListaClientes;
	}

	public void setMostrarListaClientes(Collection<Cliente> mostrarListaClientes) {
		this.mostrarListaClientes = mostrarListaClientes;
	}

	public Collection<TipoMoneda> getMostrarListaTiposMoneda() {
		return mostrarListaTiposMoneda;
	}

	public void setMostrarListaTiposMoneda(Collection<TipoMoneda> mostrarListaTiposMoneda) {
		this.mostrarListaTiposMoneda = mostrarListaTiposMoneda;
	}

	public ESTADO_LETRA_DE_CAMBIO getEstadoSeleccionado() {
		return estadoSeleccionado;
	}

	public void setEstadoSeleccionado(ESTADO_LETRA_DE_CAMBIO estadoSeleccionado) {
		this.estadoSeleccionado = estadoSeleccionado;
	}

	public Cliente getClienteSeleccionado() {
		return clienteSeleccionado;
	}

	public void setClienteSeleccionado(Cliente clienteSeleccionado) {
		this.clienteSeleccionado = clienteSeleccionado;
	}

	public TipoMoneda getTipoMonedaBusqueda() {
		return tipoMonedaBusqueda;
	}

	public void setTipoMonedaBusqueda(TipoMoneda tipoMonedaBusqueda) {
		this.tipoMonedaBusqueda = tipoMonedaBusqueda;
	}

	public Date getFechaVencimientoSeleccionado() {
		return fechaVencimientoSeleccionado;
	}

	public void setFechaVencimientoSeleccionado(Date fechaVencimientoSeleccionada) {
		this.fechaVencimientoSeleccionado = fechaVencimientoSeleccionada;
	}

	public ESTADO_LETRA_DE_CAMBIO getRegistrarEstado() {
		return registrarEstado;
	}

	public void setRegistrarEstado(ESTADO_LETRA_DE_CAMBIO registrarEstado) {
		this.registrarEstado = registrarEstado;
	}

	public Cliente getRegistrarCliente() {
		return registrarCliente;
	}

	public void setRegistrarCliente(Cliente registrarCliente) {
		this.registrarCliente = registrarCliente;
	}

	public String getRegistrarNumero() {
		return registrarNumero;
	}

	public void setRegistrarNumero(String registrarNumero) {
		this.registrarNumero = registrarNumero;
	}

	public TipoMoneda getRegistrarTipoMoneda() {
		return registrarTipoMoneda;
	}

	public void setRegistrarTipoMoneda(TipoMoneda registrarTipoMoneda) {
		this.registrarTipoMoneda = registrarTipoMoneda;
	}

	public Date getRegistrarFechaVencimiento() {
		return registrarFechaVencimiento;
	}

	public void setRegistrarFechaVencimiento(Date registrarFechaVencimiento) {
		this.registrarFechaVencimiento = registrarFechaVencimiento;
	}

	public Collection<CompraFacturacion> getMostrarListaFacturas() {
		return mostrarListaFacturas;
	}

	public void setMostrarListaFacturas(Collection<CompraFacturacion> mostrarListaFacturas) {
		this.mostrarListaFacturas = mostrarListaFacturas;
	}

	public Cliente getClienteBusqueda() {
		return clienteBusqueda;
	}

	public void setClienteBusqueda(Cliente clienteBusqueda) {
		this.clienteBusqueda = clienteBusqueda;
	}

	public ESTADO_LETRA_DE_CAMBIO getEstadoBusqueda() {
		return estadoBusqueda;
	}

	public void setEstadoBusqueda(ESTADO_LETRA_DE_CAMBIO estadoBusqueda) {
		this.estadoBusqueda = estadoBusqueda;
	}

	public Date getFechaVencimientoBusqueda() {
		return fechaVencimientoBusqueda;
	}

	public void setFechaVencimientoBusqueda(Date fechaVencimientoBusqueda) {
		this.fechaVencimientoBusqueda = fechaVencimientoBusqueda;
	}

	public List<SelectItem> getComboClientesBusqueda() {
		return comboClientesBusqueda;
	}

	public void setComboClientesBusqueda(List<SelectItem> comboClientesBusqueda) {
		this.comboClientesBusqueda = comboClientesBusqueda;
	}

	public List<SelectItem> getComboEstadoLetrasBusqueda() {
		return comboEstadoLetrasBusqueda;
	}

	public void setComboEstadoLetrasBusqueda(
			List<SelectItem> comboEstadoLetrasBusqueda) {
		this.comboEstadoLetrasBusqueda = comboEstadoLetrasBusqueda;
	}

	public List<SelectItem> getComboTipoMonedasBusqueda() {
		return comboTipoMonedasBusqueda;
	}

	public void setComboTipoMonedasBusqueda(
			List<SelectItem> comboTipoMonedasBusqueda) {
		this.comboTipoMonedasBusqueda = comboTipoMonedasBusqueda;
	}

	public TipoMoneda getTipoMonedaSeleccionado() {
		return tipoMonedaSeleccionado;
	}

	public void setTipoMonedaSeleccionado(TipoMoneda tipoMonedaSeleccionado) {
		this.tipoMonedaSeleccionado = tipoMonedaSeleccionado;
	}

	public String getNumeroLetra() {
		return numeroLetra;
	}

	public void setNumeroLetra(String numeroLetra) {
		this.numeroLetra = numeroLetra;
	}

	public List<SelectItem> getComboEstadoLetras() {
		return comboEstadoLetras;
	}

	public void setComboEstadoLetras(List<SelectItem> comboEstadoLetras) {
		this.comboEstadoLetras = comboEstadoLetras;
	}

	public List<SelectItem> getComboClientes() {
		return comboClientes;
	}

	public void setComboClientes(List<SelectItem> comboClientes) {
		this.comboClientes = comboClientes;
	}

	public List<SelectItem> getComboTipoMonedas() {
		return comboTipoMonedas;
	}

	public void setComboTipoMonedas(List<SelectItem> comboTipoMonedas) {
		this.comboTipoMonedas = comboTipoMonedas;
	}

	public VentaFacturacion[] getFacturasSeleccionadas() {
		return facturasSeleccionadas;
	}

	public void setFacturasSeleccionadas(VentaFacturacion[] facturasSeleccionadas) {
		this.facturasSeleccionadas = facturasSeleccionadas;
	}

	public LetraPorCobrarModel getLetraPorCobrarModel() {
		return letraPorCobrarModel;
	}

	public void setLetraPorCobrarModel(LetraPorCobrarModel letraPorCobrarModel) {
		this.letraPorCobrarModel = letraPorCobrarModel;
	}

	public List<DetalleLetra> getListaDetalleLetra() {
		return listaDetalleLetra;
	}

	public void setListaDetalleLetra(List<DetalleLetra> listaDetalleLetra) {
		this.listaDetalleLetra = listaDetalleLetra;
	}

	public Locale getLocale() {
		return locale;
	}

	public void setLocale(Locale locale) {
		this.locale = locale;
	}
	
	public BigDecimal getMontoTotal() {
		return montoTotal;
	}
	
	public void setMontoTotal(BigDecimal montoTotal) {
		this.montoTotal = montoTotal;
	}
	
	public List<SelectItem> getComboBancos() {
		return comboBancos;
	}
	
	public void setComboBancos(List<SelectItem> comboBancos) {
		this.comboBancos = comboBancos;
	}

	public Integer getBancoSeleccionado() {
		return bancoSeleccionado;
	}
	
	public void setBancoSeleccionado(Integer bancoSeleccionado) {
		this.bancoSeleccionado = bancoSeleccionado;
	}
	
	public Collection<VentaFacturacion> getListaFacturasPorCobrar() {
		return listaFacturasPorCobrar;
	}
	
	public void setListaFacturasPorCobrar(
			Collection<VentaFacturacion> listaFacturasPorCobrar) {
		this.listaFacturasPorCobrar = listaFacturasPorCobrar;
	}
	
	public Letra getLetraSeleccionada() {
		return letraSeleccionada;
	}
	
	public void setLetraSeleccionada(Letra letraSeleccionada) {
		this.letraSeleccionada = letraSeleccionada;
	}
}